اسناد جنگو نشان می دهد SecurityMiddleware در نزدیکی بالای تنظیمات MIDWARE شما قرار گرفته است: این مجموعه مجموعه ای از بررسی ها و بررسی های امنیتی را انجام می دهد که در غیر این صورت وب سایت شما به سادگی هک می شود.
X-Content-Type-Options
SecurityMiddleware
هدر X-Content-Type-Options
را به nosniff
تنظیم می کند تا از اجرای یک فایل مخرب جاوااسکریپت که هکرها در وب سایت شما بارگذاری کرده اند ، جلوگیری کند.
این هدر به مرورگر نشان می دهد که انواع MIME تبلیغ شده در هدرهای نوع محتوا نباید تغییر کند (با "بو کشیدن" محتوا). هنگامی که یک توسعه دهنده یا پیکربندی اشتباه سرور ، Content-Type
را اشتباه شناسایی کرده است ، ویژگی sniffing مفید است. اگر مرورگر به یک نوع MIME نادرست احترام بگذارد ، یک پرونده جاوا اسکریپت ، css یا تصویر کار نمی کند و وب سایت خراب می شود. ویژگی بسیار مفید همانطور که اثبات ساده مفهوم زیر نشان می دهد ، می توان از آن سواستفاده کرد.
# settings.py
MIDDLEWARE = [
# "django.middleware.security.SecurityMiddleware",
"django.middleware.common.CommonMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
...
]
SECURE_CONTENT_TYPE_NOSNIFF = False # pre-Django 3.0 it was False by default. Post 3.0 it's True
# views.py
class HomePage(View):
def get(self, *args, **kwargs):
# simulate a misconfgured server that returns a response that has no content type
response = HttpResponse("<script>alert('hello world')</script>")
del response['Content-Type']
return response
نتیجه هنگام رفتن به صفحه اصلی نشان می دهد که "هک" کار کرده است:
این اثبات ساده مفهوم ، وضعیت پیچیده تر زیر را شبیه سازی می کند:
اگر SecurityMiddleware
موجود باشد و ویژگی nosniff
فعال باشد ، از این امر جلوگیری می شود:
# settings.py
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware" ,
"django.middleware.common.CommonMiddleware" ,
"django.contrib.sessions.middleware.SessionMiddleware" ,
...
] SECURE_CONTENT_TYPE_NOSNIFF = True
سپس مرورگر تحت تاثیر این ترفند قرار نمی گیرد:
X-XSS-Protection
SecurityMiddleware
عنوان X-XSS-Protection
را روی 1; mode=block قرار می دهد وقتی SECURE_BROWSER_XSS_FILTER
برابر True
است تا حفاظت XSS داخلی مرورگر را فعال کند.
این محافظت از XSS در اکثر مرورگرها توسط CSP جایگزین شده است. مرورگرهای قدیمی هنوز از این ویژگی پشتیبانی می کنند ، اما بسیاری از مرورگرها این ویژگی را حذف کرده اند. کاربرانی که از مرورگرهای قدیمی تر برخوردار هستند همچنان برای آنها مهم هستند زیرا امنیت وب سایت شما نمی تواند فرض کند همه از آخرین نسخه Chrome استفاده می کنند.
بدون SecurityMiddleware
و SECURE_BROWSER_XSS_FILTER
، وب سایت مزیت محافظت در برابر بسیاری از حملات احتمالی XSS را نخواهد داشت.
Referrer Policy
SecurityMiddleware
هدر referer policy را بر اساس SECURE_REFERRER_POLICY
, تنظیم می کند ، که بر حریم خصوصی کاربر تأثیر می گذارد و یک فرصت برای هکرها است که قصد دارند کاربران را مجبور کنند فکر کنند هنوز در وب سایت شما هستند.
وب سایت هدف می تواند از هدر referer سواستفاده کند: شاید اسرار موجود در URL وب سایت شما به بیرون درز کند. پیچیده تر ، شاید یک هکر بتواند پیوندی به وب سایت خود اضافه کند. سپس هدف می تواند هدر مراجعه کننده را بخواند و به وب سایت خود استایل دهد تا مانند وب سایت شما باشد. کاربری که توجه نمی کند ممکن است فکر کند که هنوز در وب سایت شماست زیرا:
بنابراین کاربر ممکن است مدارک و اطلاعات شخصی را در وب سایت هکر وارد کند.
با عدم در معرض قرار دادن هدر referer توسط تنظیمات SECURE_REFERRER_POLICY
، که سپس توسط SecurityMiddleware
کنترل می شود ، می توان از این امر جلوگیری کرد.
SSL Redirect
اگر SECURE_SSL_REDIRECT
روی True
تنظیم شود ، SecurityMiddleware می تواند پروتکل HTTP را به HTTPS هدایت کند.
اگر HTTP را به HTTPS هدایت نکنید ، گذرواژه ها و اطلاعات شخصی از طریق متن ساده منتقل می شوند و هر فردی در هنگام انتقال می تواند آنها را بخواند.
برای ثبت نظر باید وارد سایت شوید یا ثبت نام نمایید.
نظر شما با موفقیت در سیستم ثبت گردید.